package controller

//视频流接口

import (
	"github.com/gin-gonic/gin"
	"go-demo/common"
	"go-demo/model"
	"go-demo/service"
	"net/http"
	"time"
)

//请求参数:latest_time,token
//latest_time string 可选
//可选参数，限制返回视频的最新投稿时间戳，精确到秒，不填表示当前时间
//token string 用户登录状态下设置 可选

// 返回的数据类型
type FeedResponse struct {
	model.Response
	VideoList []model.Video `json:"video_list,omitempty"`
	NextTime  int64         `json:"next_time,omitempty"`
}

//这是一个使用Gin框架编写的Feed函数。
//该函数接收一个请求上下文参数 c。
//在函数内部，使用c.JSON方法将HTTP状态码设置为200，并返回一个包含响应状态码和视频列表的JSON对象。
//视频列表是通过访问DemoVideos来获取的。NextTime字段包含当前时间的UNIX时间戳。

// Feed same demo video list for every request
func Feed(c *gin.Context) {
	videoList := service.GetFeed()
	c.JSON(http.StatusOK, FeedResponse{
		Response:  model.Response{StatusCode: common.SUCCESS, StatusMsg: "获取视频流成功"}, //返回都有的两个参数
		VideoList: videoList,
		NextTime:  time.Now().Unix(), //截止到当前时间
	})
}
